/*
 * config.h
 *
 * The global configration for this project.
 *
 * Copyright (C) 2022 Mi Micro Well TECH, Inc.
 * Subject to the GNU Public License, version 2.
 *
 * Author: guoming<guoming@microwell.net>
 */
#ifndef __CONFIG_H__
#define __CONFIG_H__

#include "types.h"

/*=============================================================================
 *                          Application config
 *===========================================================================*/

/* Battery's full voltage in mV */
#define CONFIG_BAT_FULL_VOLTAGE               (4350)

/* DCIN charger max current, unit is mA*/
#define CONFIG_DC_CHARGER_MAX_CURRENT         (450)

/* 0, SS880X; 1, SS881X; 2, SS888X*/
#define CONFIG_IC_TYPE                        (CHIP_SS881X)

/* Low power mode: 0, 3uA; 1, 30uA */
#define CONFIG_POWER_LPM_MODE                 (1)

/* Use device firmware upgrade : 0,no use  1,use */
#define CONFIG_APP_USE_DFU                    (1)

/*
 * 0, do not enable debug;
 * 1, using simulator debug;
 * 2, using uart debug
 */
#define CONFIG_USING_DEBUG                    (2)
/*=============================================================================
 *                          Application config end
 *===========================================================================*/

/**=============================================================================
 *                              GPIO config
 * =============================================================================
 *             GPIO_NO_USE             
 *             GPIO_MODE_OUTPUT                 !< Output Push Pull Mode 
 *             GPIO_MODE_INPUT                  !< Input Floating Mode
 *             GPIO_MODE_NTC                    !< NTC Mode 
 *             GPIO_MODE_ADC                    !< ADC Mode 
 *             GPIO_MODE_PWM                    !< PWM Mode 
 *             GPIO_MODE_CC                     !< CC Mode 
 *             GPIO_MODE_CMP                    !< CMP Mode 
 *             GPIO_MODE_TS                     !< TS Mode 
 *             GPIO_MODE_TX0                    !< UART0 TX Mode 
 *             GPIO_MODE_RX0                    !< UART0 RX  Mode 
 *             GPIO_MODE_MT0                    !< UART0 RX/TX Mode 
 *             GPIO_MODE_EINT                   !< EINT Mode
 *===========================================================================*/
#define GPIO_P00_MODE                         (GPIO_MODE_INPUT)
#define GPIO_P01_MODE                         (GPIO_MODE_INPUT)   
#define GPIO_P02_MODE                         (GPIO_MODE_INPUT)
#define GPIO_P03_MODE                         (GPIO_MODE_INPUT)   
#define GPIO_P04_MODE                         (GPIO_MODE_INPUT) 
#define GPIO_P05_MODE                         (GPIO_MODE_INPUT) 
#define GPIO_P06_MODE                         (GPIO_MODE_INPUT)   
#define GPIO_P07_MODE                         (GPIO_MODE_INPUT) 

#define GPIO_P10_MODE                         (GPIO_MODE_INPUT) 
#define GPIO_P11_MODE                         (GPIO_MODE_INPUT)    
#define GPIO_P12_MODE                         (GPIO_MODE_INPUT) 
#define GPIO_P13_MODE                         (GPIO_MODE_INPUT) 
#define GPIO_P14_MODE                         (GPIO_MODE_INPUT) 
#define GPIO_P15_MODE                         (GPIO_MODE_INPUT) 
#define GPIO_P16_MODE                         (GPIO_MODE_INPUT) 
#define GPIO_P17_MODE                         (GPIO_MODE_MT0) 

#define GPIO_P20_MODE                         (GPIO_MODE_OUTPUT) 
#define GPIO_P21_MODE                         (GPIO_MODE_OUTPUT) 
#define GPIO_P22_MODE                         (GPIO_MODE_INPUT) 

/**===========================================================================
 *             GPIO_NOPULL                  !< No Pull-up or Pull-down activation  
 *             GPIO_PULLUP                  !< Pull-up activation                 
 *             GPIO_PULLDOWN                !< Pull-down activation               
 *===========================================================================*/
#define GPIO_P00_PULL                         (GPIO_NOPULL)
#define GPIO_P01_PULL                         (GPIO_NOPULL)
#define GPIO_P02_PULL                         (GPIO_NOPULL)
#define GPIO_P03_PULL                         (GPIO_NOPULL)
#define GPIO_P04_PULL                         (GPIO_PULLDOWN)
#define GPIO_P05_PULL                         (GPIO_NOPULL)
#define GPIO_P06_PULL                         (GPIO_NOPULL)
#define GPIO_P07_PULL                         (GPIO_NOPULL)
#define GPIO_P10_PULL                         (GPIO_NOPULL)
#define GPIO_P11_PULL                         (GPIO_NOPULL)
#define GPIO_P12_PULL                         (GPIO_NOPULL)
#define GPIO_P13_PULL                         (GPIO_NOPULL)
#define GPIO_P14_PULL                         (GPIO_NOPULL)
#define GPIO_P15_PULL                         (GPIO_NOPULL)
#define GPIO_P16_PULL                         (GPIO_NOPULL)
#define GPIO_P17_PULL                         (GPIO_NOPULL)
#define GPIO_P20_PULL                         (GPIO_NOPULL)
#define GPIO_P21_PULL                         (GPIO_NOPULL)
#define GPIO_P22_PULL                         (GPIO_NOPULL)
/*=============================================================================
 *                          GPIO config end
 *===========================================================================*/
#endif